package com.example.demo01.component;

import org.springframework.util.StringUtils;
import org.springframework.web.servlet.LocaleResolver;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;

/**
 * 自定义区域解析器:
 * 1.如果请求参数中指定了具体的区域信息，就使用请求参数中的;
 * 2.如果请求参数中没有指定，就使用请求头中最靠前的区域信息;
 * 3.如果请求参数和请求头都没有指定，那么使用系统默认的区域信息。
 */
public class MyLocaleResolver implements LocaleResolver {
    @Override
    public Locale resolveLocale(HttpServletRequest request) {

        Locale locale = null;
        String local = request.getParameter("local");
        if (!StringUtils.isEmpty(local)) {
            String[] split = local.split("_");
            locale = new Locale(split[0], split[1]);
        } else if (request.getLocale() != null) {
            locale = request.getLocale();
        } else {
            locale = Locale.getDefault();
        }

        return locale;
    }

    @Override
    public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {

    }
}
